﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using GraphicUserInterface.NewAccount;
using DataTransferObjects;
using Business;

namespace GraphicUserInterface.MainForm
{
    public partial class frLogin : Form
    {
        public frLogin()
        {
            InitializeComponent();
        }

        private void btRegNewAcc_Click(object sender, EventArgs e)
        {
            frNewAccount newAccountForm = new frNewAccount();
            newAccountForm.Owner = this;
            this.AddOwnedForm(newAccountForm);
            newAccountForm.Show();
            this.Hide();

        }

        //Kiểm tra trạng thái login
        private bool IsLoginValid()
        {
            bool bIsValid = true;
            string strMessages = "";

            //Kiểm tra thông tin email
            if (tbEmail.Text.Length == 0 || tbEmail.Text.Contains('@') == false)
            {
                bIsValid = false;
                strMessages = strMessages + "Vui lòng nhập địa chỉ email.\n";
            }

            //Kiểm tra thông tin họ tên
            tbPassword.Text.Trim();
            if (tbPassword.Text.Length == 0)
            {
                bIsValid = false;
                strMessages = strMessages + "Vui lòng nhập passphrase.\n";
            }

            if (strMessages.Length != 0)
            {
                MessageBox.Show(strMessages);
            }
            else
            {
                AccountInforDTO accountInfor = AccountBUS.getAccInforFromDB(this.tbEmail.Text);
                if (!KeyBUS.IsPassphraseValid(accountInfor.iUserID, tbPassword.Text))
                {
                    bIsValid = false;
                    MessageBox.Show("Bạn đã nhập passphrase sai. Vui lòng nhập lại thông tin để đăng nhập vào chương trình.");
                }
            }

            return bIsValid;
        }

        private void btLogin_Click(object sender, EventArgs e)
        {
            //check condition, if true, bypass
            if (!IsLoginValid())
            {                
                return;
            }

            frMainForm mainForm = new frMainForm(tbEmail.Text);


            this.AddOwnedForm(mainForm);
            mainForm.Owner = this;
            mainForm.Show();

            this.Hide();
        }

        private void btExit_Click(object sender, EventArgs e)
        {
            this.Close();
        }

    }
}
